layui.use(['table','layer'],function(){
    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    /**
     * 加载数据表格
     */
    var tableIns = table.render({
        id:'dataDicTable'
        // 容器元素的ID属性值
        ,elem: '#dataDicList'
        // 容器的高度 full-差值
        ,height: 'full-125'
        // 单元格最小的宽度
        ,cellMinWidth:105
        // 访问数据的URL（后台的数据接口）
        ,url: ctx + '/data_dic/list'
        // 开启分页
        ,page: true
        // 默认每页显示的数量
        ,limit:10
        // 每页页数的可选项
        ,limits:[10,20,30,40,50]
        // 开启头部工具栏
        ,toolbar:'#toolbarDemo'
        // 表头
        ,cols: [[
            // field：要求field属性值与返回的数据中对应的属性字段名一致
            // title：设置列的标题
            // sort：是否允许排序（默认：false）
            // fixed：固定列
            {type:'checkbox', fixed:'center'}
            ,{field: 'id', title: '编号',  sort: true, fixed: 'left'}
            ,{field: 'dataDicName', title: '字典类型', align:'center'}
            ,{field: 'dataDicValue', title: '字典值', align:'center'}
            ,{field: 'createDate', title: '创建时间', align:'center'}
            ,{field: 'updateDate', title: '修改时间', align:'center'}
            ,{title:'操作',templet:'#dataDicListBar', fixed: 'right', align:'center', minWidth:150}
        ]]
    });

    /**
     * 搜索按钮的点击事件
     */
    $(".search_btn").click(function () {

        /**
         * 表格重载
         *  多条件查询
         */
        tableIns.reload({
            // 设置需要传递给后端的参数
            where: { //设定异步数据接口的额外参数，任意设
                // 通过文本框/下拉框的值，设置传递的参数
                dataDicValue: $("[name='dataDicValue']").val() // 字典值
                ,dataDicName:$("#dataDicName").val() // 字典类型
            }
            ,page: {
                curr: 1 // 重新从第 1 页开始
            }
        });

    });


    /**
     * 监听头部工具栏
     */
    table.on('toolbar(dataDic)', function (data) {
        // 获取被选中的数据的相关信息
        var checkStatus = table.checkStatus(data.config.id);
        console.log(checkStatus)
        if (data.event == "add") { // 添加字典信息
            // 打开添加/修改字典信息的对话框
            openDataDicDialog();
        }else if (data.event == "del") {
            // 删除操作
            deleteDataDic(data);
        }

    });
    /**
     * 监听行工具栏
     */
    table.on('tool(dataDic)', function (data) {

        if (data.event == "edit") { // 更新字典信息
            var dataDicId = data.data.id;
            openDataDicDialog(dataDicId)
        } else if (data.event == "del") { // 删除单条字典信息
            // 弹出确认框，询问用户是否确认删除
            layer.confirm('确定要删除该记录吗？',{icon:3, title:"字典管理"}, function (index) {
                // 关闭确认框
                layer.close(index);

                // 发送ajax请求，删除记录
                $.ajax({
                    type:"post",
                    url:ctx + "/data_dic/delete",
                    data:{
                        ids:data.data.id
                    },
                    success:function (result) {
                        // 判断删除结果
                        if (result.code == 200) {
                            // 提示成功
                            layer.msg("删除成功！",{icon:6});
                            // 刷新表格
                            tableIns.reload();
                        } else {
                            // 提示失败
                            layer.msg(result.msg, {icon:5});
                        }
                    }
                });
            });
        }
    });
    
    /**
     * 打开添加/修改字典数据的窗口
     *      如果字典ID为空，则为添加操作
     *      如果字典ID不为空，则为修改操作
     */
    function openDataDicDialog(dataDicId) {
        // 弹出层的标题
        var title = "<h3>字典管理 - 添加字典</h3>";
        var url = ctx + "/data_dic/toDataDicPage";

        // 判断字典ID是否为空
        if (dataDicId != null && dataDicId != '') {
            // 更新操作
            title  = "<h3>字典管理 - 更新字典</h3>";
            // 请求地址传递字典的ID
            url += '?dataDicId=' + dataDicId;
        }

        // iframe层
        layui.layer.open({
            // 类型
            type: 2,
            // 标题
            title: title,
            // 宽高
            area: ['500px', '360px'],
            // url地址
            content: url,
            // 可以最大化与最小化
            maxmin:true
        });
    }

    /**
     * 删除字典（删除多条记录）
     * @param data
     */
    function deleteDataDic(data) {
        // 获取数据表格选中的行数据   table.checkStatus('数据表格的ID属性值');
        var checkStatus = table.checkStatus("dataDicTable");
        console.log(checkStatus);

        // 获取所有被选中的记录对应的数据
        var dataDicData = checkStatus.data;

        // 判断用户是否选择的记录 (选中行的数量大于0)
        if (dataDicData.length < 1) {
            layer.msg("请选择要删除的记录！",{icon:5});
            return;
        }

        // 询问用户是否确认删除
        layer.confirm('您确定要删除选中的记录吗？',{icon:3, title:'字典管理'}, function (index) {
            // 关闭确认框
            layer.close(index);
            // 传递的参数是数组   ids=1&ids=2&ids=3
            var ids = "ids=";
            // 循环选中的行记录的数据
            for(var i = 0; i < dataDicData.length; i++) {
                if(i < dataDicData.length -1) {
                    ids = ids + dataDicData[i].id + "&ids="
                } else {
                    ids = ids + dataDicData[i].id;
                }
            }
            // console.log(ids);

            // 发送ajax请求，执行删除字典
            $.ajax({
                type:"post",
                url:ctx + "/data_dic/delete",
                data:ids, // 传递的参数是数组 ids=1&ids=2&ids=3
                success:function (result) {
                    // 判断删除结果
                    if (result.code == 200) {
                        // 提示成功
                        layer.msg("删除成功！",{icon:6});
                        // 刷新表格
                        tableIns.reload();
                    } else {
                        // 提示失败
                        layer.msg(result.msg, {icon:5});
                    }
                }
            });
        });

    }


});
